package com.weishu.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.weishu.common.core.annotation.Excel;
import com.weishu.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 【请填写功能名称】对象 t_sf_contract
 * 
 * @author weishu
 * @date 2021-10-20
 */
public class TSfContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 合同编号（系统生成） */
    @Excel(name = "合同编号", readConverterExp = "系=统生成")
    private String sfContractNo;

    /** 外部合同编号（线下合同编号） */
    @Excel(name = "外部合同编号", readConverterExp = "线=下合同编号")
    private String outContractNo;

    /** 上一合同ID，续约合同的时候 */
    @Excel(name = "上一合同ID，续约合同的时候")
    private Long lastContractId;

    /** 上一合同编号 */
    @Excel(name = "上一合同编号")
    private String lastContractNo;

    /** 商户ID */
    @Excel(name = "商户ID")
    private Long businessId;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 部门编号 */
    @Excel(name = "部门编号")
    private String deptNo;

    /** 小区名(使用楼盘名称) */
    @Excel(name = "小区名(使用楼盘名称)")
    private String premiseName;

    /** 房产编号 */
    @Excel(name = "房产编号")
    private String houseId;

    /** 房产信息(考虑在房产表中增加house_name，然后带出) */
    @Excel(name = "房产信息(考虑在房产表中增加house_name，然后带出)")
    private String houseName;

    /** 所有权类型(1：国有房产，2：直管房产，3：自管房产，4：军队房产，5：集体所有房产，6：私有(自由)房产，7：港、澳、台投资房产，8：涉外房产，9：其它房产) */
    @Excel(name = "所有权类型(1：国有房产，2：直管房产，3：自管房产，4：军队房产，5：集体所有房产，6：私有(自由)房产，7：港、澳、台投资房产，8：涉外房产，9：其它房产)")
    private Integer houseType;

    /** 房产证书编号 */
    @Excel(name = "房产证书编号")
    private String houseZsNo;

    /** 产权地址 */
    @Excel(name = "产权地址")
    private String cqAddress;

    /** 业主ID */
    @Excel(name = "业主ID")
    private Long ownerId;

    /** 业主姓名 */
    @Excel(name = "业主姓名")
    private String ownerName;

    /** 是否为签约人（业主是否为签约人） 0：是，1：否 */
    @Excel(name = "是否为签约人", readConverterExp = "业=主是否为签约人")
    private Integer signWithOwner;

    /** 业主证件号码（身份证） */
    @Excel(name = "业主证件号码", readConverterExp = "身=份证")
    private String ownerIdCard;

    /** 业主手机号 */
    @Excel(name = "业主手机号")
    private String ownerMobile;

    /** 业主联系地址 */
    @Excel(name = "业主联系地址")
    private String ownerContactAddress;

    /** 签约人(甲方) */
    @Excel(name = "签约人(甲方)")
    private String signUserName;

    /** 签约人证件号（身份证） */
    @Excel(name = "签约人证件号", readConverterExp = "身=份证")
    private String signUserIdCard;

    /** 签约人手机号 */
    @Excel(name = "签约人手机号")
    private String signUserMobile;

    /** 紧急联系电话 */
    @Excel(name = "紧急联系电话")
    private String signUserEmergencyPhone;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String bankCard;

    /** 持卡人姓名 */
    @Excel(name = "持卡人姓名")
    private String bankUserName;

    /** 持卡人身份证 */
    @Excel(name = "持卡人身份证")
    private String bankUserIdCard;

    /** 银行ID（开户总行ID） */
    @Excel(name = "银行ID", readConverterExp = "开=户总行ID")
    private Long bankId;

    /** 银行名称（开户总行名称，对应bank表） */
    @Excel(name = "银行名称", readConverterExp = "开=户总行名称，对应bank表")
    private String bankName;

    /** 开户行(支行) */
    @Excel(name = "开户行(支行)")
    private String bankOpen;

    /** 租约期限开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租约期限开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaseStartTime;

    /** 租约期限结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租约期限结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaseEndTime;

    /** 收房月租金 */
    @Excel(name = "收房月租金")
    private BigDecimal monthRent;

    /** 房产押金 */
    @Excel(name = "房产押金")
    private BigDecimal depositMoney;

    /** 支付方式(押X付Y的X) */
    @Excel(name = "支付方式(押X付Y的X)")
    private Integer depositType;

    /** 支付方式(押X付Y的Y） */
    @Excel(name = "支付方式(押X付Y的Y）")
    private Integer paymentType;

    /** 合同签订时间，（暂定设置为提交日期） */
    @Excel(name = "合同签订时间，", readConverterExp = "暂=定设置为提交日期")
    private Date conSignTime;

    /** 合同录入时间，（暂定设置为提交日期） */
    @Excel(name = "合同录入时间，", readConverterExp = "暂=定设置为提交日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date conInfoTime;

    /** 合同审核时间，（暂定设置为提交日期） */
    @Excel(name = "合同审核时间，", readConverterExp = "暂=定设置为提交日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date conAudTime;

    /** 合同录入人（暂定设置为创建人） */
    @Excel(name = "合同录入人", readConverterExp = "暂=定设置为创建人")
    private Long operId;

    /** 收房人，（暂定设置为创建人） */
    @Excel(name = "收房人，", readConverterExp = "暂=定设置为创建人")
    private Long sfUserId;

    /** 收房人姓名 */
    @Excel(name = "收房人姓名")
    private String sfUserName;

    /** 合同状态（1，草稿。2，已提交。3，已解约。4，已结束。9:作废） */
    @Excel(name = "合同状态", readConverterExp = "1=，草稿。2，已提交。3，已解约。4，已结束。9:作废")
    private Integer status;

    /** 续约状态（0，未续约。1，已续约） */
    @Excel(name = "续约状态", readConverterExp = "0=，未续约。1，已续约")
    private Integer xyStatus;

    /** 是否收房贷,0:否 1:是 */
    @Excel(name = "是否收房贷,0:否 1:是")
    private Integer sfLoanFlg;

    /** 冻结状态：0未冻结 1已冻结(申请金融服务的时候，才会有冻结状态) */
    @Excel(name = "冻结状态：0未冻结 1已冻结(申请金融服务的时候，才会有冻结状态)")
    private Integer freezeStatus;

    /** 银行账户类型（对公账户、对私账户）AccountTypeEnum */
    @Excel(name = "银行账户类型", readConverterExp = "对=公账户、对私账户")
    private Integer accountType;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String bankCardNumber;

    /** 账户名称（对公为企业名称，对私为姓名） */
    @Excel(name = "账户名称", readConverterExp = "对=公为企业名称，对私为姓名")
    private String accountName;

    /** 联行行号（手输，对公必须） */
    @Excel(name = "联行行号", readConverterExp = "手=输，对公必须")
    private String bankBranchCodeLh;

    /** 开户行所在省ID */
    @Excel(name = "开户行所在省ID")
    private Long bankAccountProvince;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private Long reserve1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private Long reserve2;

    /** 预留字段3 */
    @Excel(name = "业主姓名")
    private String reserve3;

    /** 预留字段4 */
    @Excel(name = "手机号")
    private String reserve4;

    /** 预留字段5 */
    @Excel(name = "预留字段5")
    private String reserve5;

    /** 删除标识，0:未删除，1：删除 */
    @Excel(name = "删除标识，0:未删除，1：删除")
    private Integer delFlg;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long createUserid;

    /** 更新用户ID */
    @Excel(name = "更新用户ID")
    private Long updateUserid;

    /** 房产类型：1.合租；2.整租；3.公寓 */
    @Excel(name = "房产类型：1.合租；2.整租；3.公寓")
    private Integer houseLeaseType;


    private Integer terminationType;

    private Date wyjgDate;


    public Integer getTerminationType() {
        return terminationType;
    }

    public void setTerminationType(Integer terminationType) {
        this.terminationType = terminationType;
    }

    public Date getWyjgDate() {
        return wyjgDate;
    }

    public void setWyjgDate(Date wyjgDate) {
        this.wyjgDate = wyjgDate;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSfContractNo(String sfContractNo)
    {
        this.sfContractNo = sfContractNo;
    }

    public String getSfContractNo()
    {
        return sfContractNo;
    }
    public void setOutContractNo(String outContractNo)
    {
        this.outContractNo = outContractNo;
    }

    public String getOutContractNo()
    {
        return outContractNo;
    }
    public void setLastContractId(Long lastContractId)
    {
        this.lastContractId = lastContractId;
    }

    public Long getLastContractId()
    {
        return lastContractId;
    }
    public void setLastContractNo(String lastContractNo)
    {
        this.lastContractNo = lastContractNo;
    }

    public String getLastContractNo()
    {
        return lastContractNo;
    }
    public void setBusinessId(Long businessId)
    {
        this.businessId = businessId;
    }

    public Long getBusinessId()
    {
        return businessId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptNo(String deptNo)
    {
        this.deptNo = deptNo;
    }

    public String getDeptNo()
    {
        return deptNo;
    }
    public void setPremiseName(String premiseName)
    {
        this.premiseName = premiseName;
    }

    public String getPremiseName()
    {
        return premiseName;
    }
    public void setHouseId(String houseId)
    {
        this.houseId = houseId;
    }

    public String getHouseId()
    {
        return houseId;
    }
    public void setHouseName(String houseName)
    {
        this.houseName = houseName;
    }

    public String getHouseName()
    {
        return houseName;
    }
    public void setHouseType(Integer houseType)
    {
        this.houseType = houseType;
    }

    public Integer getHouseType()
    {
        return houseType;
    }
    public void setHouseZsNo(String houseZsNo)
    {
        this.houseZsNo = houseZsNo;
    }

    public String getHouseZsNo()
    {
        return houseZsNo;
    }
    public void setCqAddress(String cqAddress)
    {
        this.cqAddress = cqAddress;
    }

    public String getCqAddress()
    {
        return cqAddress;
    }
    public void setOwnerId(Long ownerId)
    {
        this.ownerId = ownerId;
    }

    public Long getOwnerId()
    {
        return ownerId;
    }
    public void setOwnerName(String ownerName)
    {
        this.ownerName = ownerName;
    }

    public String getOwnerName()
    {
        return ownerName;
    }
    public void setSignWithOwner(Integer signWithOwner)
    {
        this.signWithOwner = signWithOwner;
    }

    public Integer getSignWithOwner()
    {
        return signWithOwner;
    }
    public void setOwnerIdCard(String ownerIdCard)
    {
        this.ownerIdCard = ownerIdCard;
    }

    public String getOwnerIdCard()
    {
        return ownerIdCard;
    }
    public void setOwnerMobile(String ownerMobile)
    {
        this.ownerMobile = ownerMobile;
    }

    public String getOwnerMobile()
    {
        return ownerMobile;
    }
    public void setOwnerContactAddress(String ownerContactAddress)
    {
        this.ownerContactAddress = ownerContactAddress;
    }

    public String getOwnerContactAddress()
    {
        return ownerContactAddress;
    }
    public void setSignUserName(String signUserName)
    {
        this.signUserName = signUserName;
    }

    public String getSignUserName()
    {
        return signUserName;
    }
    public void setSignUserIdCard(String signUserIdCard)
    {
        this.signUserIdCard = signUserIdCard;
    }

    public String getSignUserIdCard()
    {
        return signUserIdCard;
    }
    public void setSignUserMobile(String signUserMobile)
    {
        this.signUserMobile = signUserMobile;
    }

    public String getSignUserMobile()
    {
        return signUserMobile;
    }
    public void setSignUserEmergencyPhone(String signUserEmergencyPhone)
    {
        this.signUserEmergencyPhone = signUserEmergencyPhone;
    }

    public String getSignUserEmergencyPhone()
    {
        return signUserEmergencyPhone;
    }
    public void setBankCard(String bankCard)
    {
        this.bankCard = bankCard;
    }

    public String getBankCard()
    {
        return bankCard;
    }
    public void setBankUserName(String bankUserName)
    {
        this.bankUserName = bankUserName;
    }

    public String getBankUserName()
    {
        return bankUserName;
    }
    public void setBankUserIdCard(String bankUserIdCard)
    {
        this.bankUserIdCard = bankUserIdCard;
    }

    public String getBankUserIdCard()
    {
        return bankUserIdCard;
    }
    public void setBankId(Long bankId)
    {
        this.bankId = bankId;
    }

    public Long getBankId()
    {
        return bankId;
    }
    public void setBankName(String bankName)
    {
        this.bankName = bankName;
    }

    public String getBankName()
    {
        return bankName;
    }
    public void setBankOpen(String bankOpen)
    {
        this.bankOpen = bankOpen;
    }

    public String getBankOpen()
    {
        return bankOpen;
    }
    public void setLeaseStartTime(Date leaseStartTime)
    {
        this.leaseStartTime = leaseStartTime;
    }

    public Date getLeaseStartTime()
    {
        return leaseStartTime;
    }
    public void setLeaseEndTime(Date leaseEndTime)
    {
        this.leaseEndTime = leaseEndTime;
    }

    public Date getLeaseEndTime()
    {
        return leaseEndTime;
    }
    public void setMonthRent(BigDecimal monthRent)
    {
        this.monthRent = monthRent;
    }

    public BigDecimal getMonthRent()
    {
        return monthRent;
    }
    public void setDepositMoney(BigDecimal depositMoney)
    {
        this.depositMoney = depositMoney;
    }

    public BigDecimal getDepositMoney()
    {
        return depositMoney;
    }
    public void setDepositType(Integer depositType)
    {
        this.depositType = depositType;
    }

    public Integer getDepositType()
    {
        return depositType;
    }
    public void setPaymentType(Integer paymentType)
    {
        this.paymentType = paymentType;
    }

    public Integer getPaymentType()
    {
        return paymentType;
    }
    public void setConSignTime(Date conSignTime)
    {
        this.conSignTime = conSignTime;
    }

    public Date getConSignTime()
    {
        return conSignTime;
    }
    public void setConInfoTime(Date conInfoTime)
    {
        this.conInfoTime = conInfoTime;
    }

    public Date getConInfoTime()
    {
        return conInfoTime;
    }
    public void setConAudTime(Date conAudTime)
    {
        this.conAudTime = conAudTime;
    }

    public Date getConAudTime()
    {
        return conAudTime;
    }
    public void setOperId(Long operId)
    {
        this.operId = operId;
    }

    public Long getOperId()
    {
        return operId;
    }
    public void setSfUserId(Long sfUserId)
    {
        this.sfUserId = sfUserId;
    }

    public Long getSfUserId()
    {
        return sfUserId;
    }
    public void setSfUserName(String sfUserName)
    {
        this.sfUserName = sfUserName;
    }

    public String getSfUserName()
    {
        return sfUserName;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setXyStatus(Integer xyStatus)
    {
        this.xyStatus = xyStatus;
    }

    public Integer getXyStatus()
    {
        return xyStatus;
    }
    public void setSfLoanFlg(Integer sfLoanFlg)
    {
        this.sfLoanFlg = sfLoanFlg;
    }

    public Integer getSfLoanFlg()
    {
        return sfLoanFlg;
    }
    public void setFreezeStatus(Integer freezeStatus)
    {
        this.freezeStatus = freezeStatus;
    }

    public Integer getFreezeStatus()
    {
        return freezeStatus;
    }
    public void setAccountType(Integer accountType)
    {
        this.accountType = accountType;
    }

    public Integer getAccountType()
    {
        return accountType;
    }
    public void setBankCardNumber(String bankCardNumber)
    {
        this.bankCardNumber = bankCardNumber;
    }

    public String getBankCardNumber()
    {
        return bankCardNumber;
    }
    public void setAccountName(String accountName)
    {
        this.accountName = accountName;
    }

    public String getAccountName()
    {
        return accountName;
    }
    public void setBankBranchCodeLh(String bankBranchCodeLh)
    {
        this.bankBranchCodeLh = bankBranchCodeLh;
    }

    public String getBankBranchCodeLh()
    {
        return bankBranchCodeLh;
    }
    public void setBankAccountProvince(Long bankAccountProvince)
    {
        this.bankAccountProvince = bankAccountProvince;
    }

    public Long getBankAccountProvince()
    {
        return bankAccountProvince;
    }
    public void setReserve1(Long reserve1)
    {
        this.reserve1 = reserve1;
    }

    public Long getReserve1()
    {
        return reserve1;
    }
    public void setReserve2(Long reserve2)
    {
        this.reserve2 = reserve2;
    }

    public Long getReserve2()
    {
        return reserve2;
    }
    public void setReserve3(String reserve3)
    {
        this.reserve3 = reserve3;
    }

    public String getReserve3()
    {
        return reserve3;
    }
    public void setReserve4(String reserve4)
    {
        this.reserve4 = reserve4;
    }

    public String getReserve4()
    {
        return reserve4;
    }
    public void setReserve5(String reserve5)
    {
        this.reserve5 = reserve5;
    }

    public String getReserve5()
    {
        return reserve5;
    }
    public void setDelFlg(Integer delFlg)
    {
        this.delFlg = delFlg;
    }

    public Integer getDelFlg()
    {
        return delFlg;
    }
    public void setCreateUserid(Long createUserid)
    {
        this.createUserid = createUserid;
    }

    public Long getCreateUserid()
    {
        return createUserid;
    }
    public void setUpdateUserid(Long updateUserid)
    {
        this.updateUserid = updateUserid;
    }

    public Long getUpdateUserid()
    {
        return updateUserid;
    }
    public void setHouseLeaseType(Integer houseLeaseType)
    {
        this.houseLeaseType = houseLeaseType;
    }

    public Integer getHouseLeaseType()
    {
        return houseLeaseType;
    }

    @Override
    public String toString() {
        return "TSfContract{" +
                "id=" + id +
                ", sfContractNo='" + sfContractNo + '\'' +
                ", outContractNo='" + outContractNo + '\'' +
                ", lastContractId=" + lastContractId +
                ", lastContractNo='" + lastContractNo + '\'' +
                ", businessId=" + businessId +
                ", deptId=" + deptId +
                ", deptNo='" + deptNo + '\'' +
                ", premiseName='" + premiseName + '\'' +
                ", houseId='" + houseId + '\'' +
                ", houseName='" + houseName + '\'' +
                ", houseType=" + houseType +
                ", houseZsNo='" + houseZsNo + '\'' +
                ", cqAddress='" + cqAddress + '\'' +
                ", ownerId=" + ownerId +
                ", ownerName='" + ownerName + '\'' +
                ", signWithOwner=" + signWithOwner +
                ", ownerIdCard='" + ownerIdCard + '\'' +
                ", ownerMobile='" + ownerMobile + '\'' +
                ", ownerContactAddress='" + ownerContactAddress + '\'' +
                ", signUserName='" + signUserName + '\'' +
                ", signUserIdCard='" + signUserIdCard + '\'' +
                ", signUserMobile='" + signUserMobile + '\'' +
                ", signUserEmergencyPhone='" + signUserEmergencyPhone + '\'' +
                ", bankCard='" + bankCard + '\'' +
                ", bankUserName='" + bankUserName + '\'' +
                ", bankUserIdCard='" + bankUserIdCard + '\'' +
                ", bankId=" + bankId +
                ", bankName='" + bankName + '\'' +
                ", bankOpen='" + bankOpen + '\'' +
                ", leaseStartTime=" + leaseStartTime +
                ", leaseEndTime=" + leaseEndTime +
                ", monthRent=" + monthRent +
                ", depositMoney=" + depositMoney +
                ", depositType=" + depositType +
                ", paymentType=" + paymentType +
                ", conSignTime=" + conSignTime +
                ", conInfoTime=" + conInfoTime +
                ", conAudTime=" + conAudTime +
                ", operId=" + operId +
                ", sfUserId=" + sfUserId +
                ", sfUserName='" + sfUserName + '\'' +
                ", status=" + status +
                ", xyStatus=" + xyStatus +
                ", sfLoanFlg=" + sfLoanFlg +
                ", freezeStatus=" + freezeStatus +
                ", accountType=" + accountType +
                ", bankCardNumber='" + bankCardNumber + '\'' +
                ", accountName='" + accountName + '\'' +
                ", bankBranchCodeLh='" + bankBranchCodeLh + '\'' +
                ", bankAccountProvince=" + bankAccountProvince +
                ", reserve1=" + reserve1 +
                ", reserve2=" + reserve2 +
                ", reserve3='" + reserve3 + '\'' +
                ", reserve4='" + reserve4 + '\'' +
                ", reserve5='" + reserve5 + '\'' +
                ", delFlg=" + delFlg +
                ", createUserid=" + createUserid +
                ", updateUserid=" + updateUserid +
                ", houseLeaseType=" + houseLeaseType +
                ", terminationType=" + terminationType +
                ", wyjgDate=" + wyjgDate +
                '}';
    }

    public void save(List<TSfContract> list) {
    }
}